home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / diffs / gcc-263 / config / msdos / mklibgcc.c < prev    next >
Encoding:
Text File  |  1995-01-18  |  2.1 KB  |  104 lines

  1. *** orig/gcc-263/config/msdos/mklibgcc.c    Sat Dec 17 18:00:58 1994
  2. --- src/gcc-263/config/msdos/mklibgcc.c    Sat Dec 17 18:39:56 1994
  3. ***************
  4. *** 0 ****
  5. --- 1,98 ----
  6. + #include <stdio.h>
  7. + #include <string.h>
  8. + #include <dirent.h>
  9. + char *skips[] = {
  10. +   "__main",
  11. +   "_ctors",
  12. +   "_exit",
  13. +   "_ctor_list",
  14. +   "_dtor_list",
  15. +   0
  16. + };
  17. + int
  18. + do_clean()
  19. + {
  20. +   DIR *dir;
  21. +   struct dirent *de;
  22. +   remove("mklibnow.bat");
  23. +   dir = opendir("lgcctmp");
  24. +   if (!dir)
  25. +     return 0;
  26. +   while ((de=readdir(dir)))
  27. +   {
  28. +     char buf[30];
  29. +     if (de->d_name[0] == '.')
  30. +       continue;
  31. +     sprintf(buf, "lgcctmp/%s", de->d_name);
  32. +     unlink(buf);
  33. +   }
  34. +   closedir(dir);
  35. +   return 0;
  36. + }
  37. + int
  38. + main(int argc, char **argv)
  39. + {
  40. +   char *cc = argv[1];
  41. +   char *csrc=argv[2];
  42. +   int i;
  43. +   FILE *batfile;
  44. +   FILE *cfile;
  45. +   if (argc > 1 && strcmp(argv[1], "-c")==0)
  46. +     return do_clean();
  47. +   mkdir("lgcctmp", 0755);
  48. +   batfile = fopen("mklibnow.bat", "a");
  49. +   if (!batfile)
  50. +   {
  51. +     perror("mklibnow.bat");
  52. +     return 1;
  53. +   }
  54. +   fprintf(batfile, "@echo off\n");
  55. +   for (i=3; i<argc; i++)
  56. +   {
  57. +     char basename[30], *bp;
  58. +     int s;
  59. +     for (s=0; skips[s]; s++)
  60. +       if (strcmp(skips[s], argv[i]) == 0)
  61. +     break;
  62. +     if (skips[s])
  63. +       continue;
  64. +     strcpy(basename, "lgcctmp/");
  65. +     if (strncmp(argv[i], "_fix", 4)==0)
  66. +     {
  67. +       strcat(basename, "fx");
  68. +       strcat(basename, argv[i]+4);
  69. +     }
  70. +     else if (strncmp(argv[i], "_float", 4)==0)
  71. +     {
  72. +       strcat(basename, "flt");
  73. +       strcat(basename, argv[i]+6);
  74. +     }
  75. +     else
  76. +     {
  77. +       strcat(basename, argv[i]);
  78. +     }
  79. +     bp = basename + strlen(basename);
  80. +     fprintf(batfile, "%s -c %s.c -o %s.o\n", cc, basename, basename);
  81. +     strcpy(bp, ".c");
  82. +     cfile = fopen(basename, "w");
  83. +     if (cfile)
  84. +     {
  85. +       *bp = 0;
  86. +       fprintf(cfile, "#define L%s\n#include \"%s\"\n", argv[i], csrc);
  87. +       fclose(cfile);
  88. +     }
  89. +     else
  90. +       perror(basename);
  91. +   }
  92. +   fclose(batfile);
  93. +   return 0;
  94. + }
  95.